home *** CD-ROM | disk | FTP | other *** search
/ 3D GFX / 3D GFX.iso / amiutils / m_p / polywog / wog188.doc < prev    next >
Text File  |  1995-12-30  |  16KB  |  525 lines

  1.  
  2. ---------------------------
  3. PolyWog, a simple 3D editor
  4. Version 1.88 Documentation
  5. (C) 1995 Ben Discoe
  6. ---------------------------
  7.  
  8. If you like this program, or find problems, or want more features, or
  9. even find it vaguely interesting, please let me know!  Send email to
  10. iguana@crl.com!
  11.  
  12. The main purpose of this program is to play with polyhedra and "geodesic"
  13. structures.  However, it is fairly general-purpose so you could use it
  14. for any sort of polygonal 3D modelling/world-design.
  15.  
  16.  
  17. *****************************************************************************
  18.  
  19.     F E A T U R E S
  20.  
  21. * Creates and edits 3D polygonal objects
  22. * Start from a wide variety of regular polyhedra
  23. * Cut, Copy, Paste, Rotate, Scale, and Stretch
  24. * Extrude and Stellate
  25. * Surfaces of Revolution
  26. * Reads and writes GEO, Sense8 NFF, and PLG format files
  27. * Writes POV-ray triangle files
  28. * Detach and attach polygonal meshes
  29. * Zoom in or out
  30. * Grid and grid snap
  31. * Tons of keyboard shortcuts so you don't HAVE to use the GUI
  32. * Tesselates arbitrary triangles and quadrilaterals to any frequency
  33. * Constructs the dual of any closed polyhedron
  34. * Removes redundant vertices or polygons
  35. * Measure distances
  36. * Unlimited Undo and Redo!
  37. * Hide and unhide any part of the object while you're working on it
  38.  
  39.  
  40. *****************************************************************************
  41.  
  42.     B U T T O N S
  43.  
  44. VERTEX ADD
  45.     Puts you in Add Vertex mode.  Click to add vertices anywhere.
  46.     They will their third coordinate as zero (no depth).
  47.  
  48. VERTEX DELETE
  49.     Puts you in Delete Vertex mode.  Click to delete vertices.
  50.     Polywog will prevent you from deleting verts which are being used by
  51.     polygons or lines.
  52.  
  53. VERTEX SELECT
  54.     Puts yoy in Select Vertex mode.  In this mode, clicking on a vertex
  55.     will toggle its selection.  Double-click will do a select-connected
  56.     from the indicated vertex.
  57.  
  58. VERTEX MOVE0
  59.     Puts you in Move Single Vertex mode.  Click and drag to move a vertex.
  60.  
  61. CREATE POLY / POLY3 / POLY4 / LINE
  62.     Puts you in Create mode.
  63.     For a polygon, click on each of the vertices, ending with the first
  64.     vertex.  For "POLY3" and "POLY4", Polywog knows that you want a 3- or
  65.     4-sided polygon, so you don't have to end with the first vertex.
  66.     For a line, just click on two vertices.
  67.  
  68. DESTROY POLY / POLY3 / POLY4 / LINE
  69.     Puts you in Destroy mode.
  70.     For a polygon, click on each of the vertices, ending with the first
  71.     vertex.  For "POLY3" and "POLY4", Polywog knows that you want a 3- or
  72.     4-sided polygon, so you don't have to end with the first vertex.
  73.     For a line, just click on two vertices.
  74.  
  75. SELECTION STRETCH
  76.     In Stretch mode, hold down the mouse and drag to stretch the selected
  77.     geometry in the two dimensions that the mouse is moving in.
  78.     Stretching is performed around the selection center.
  79.  
  80. SELECTION MOVE
  81.     In Move mode, hold down the mouse and drag to move the selected
  82.     geometry in the two dimensions that the mouse is moving in.
  83.     Holding down SHIFT will snap the starting and ending points to the
  84.     nearest vertices.  This can be extremely useful for lining up parts
  85.     of an object.
  86.  
  87. SELECTION SCALE
  88.     Scaling is exactly like stretching except that the all three
  89.     dimensions are sretched by the same factor.
  90.  
  91. SELECTION ROTATE
  92.     In Rotate mode, click to define the point to rotate around, hold
  93.     down the mouse and drag to define the amount of rotation.  Let go
  94.     and the selection will rotate.
  95.  
  96. SELECTION SET COLOR
  97.     Hitting this button will set all selected polys to the current color.
  98.  
  99. AREA SELECT
  100.     In Area Select mode, drag to define a box.  All visible vertices in
  101.     the box will be selected.  Unless you hold down SHIFT to extend the
  102.     selection, all vertices outside the box will be deselected.
  103.  
  104. AREA DESELECT
  105.     In Area Deselect mode, drag to define a box.  All visible vertices
  106.     in the box will be deselected.
  107.  
  108. AREA ZOOM INTO
  109.     In Area Zoom mode, drag to define a box.  You will zoom in to view
  110.     only the geometry in the box.
  111.  
  112. VIEW FRONT / SIDE / TOP
  113.     Indicates which view.
  114.  
  115. VIEW FAKE 3D
  116.     Adds an orthographic slant to your view.  This is useful for getting
  117.     a sense of depth for telling apart the front and back of objects.
  118.     You can still do ALL editing in this mode.
  119.     Viewing your object from a true 3D perspective requires a separate
  120.     program, either realtime or nonrealtime, such as WorldToolKit or
  121.     POV-Ray.  Nonetheless, it is often useful to have a "fake"
  122.     orthogonal slant, as a conceptual or selection aid.
  123.  
  124. ZOOM
  125.     Lets you change the degree of magnification.  In Zoom mode, click
  126.     the first button to zoom in towards a location, second button to
  127.     zoom out away from a location.
  128.  
  129. GLUE
  130.     Glue will "merge" the the point closest to the pointer and the
  131.     point closest to it.  All degenerations are handled correctly.
  132.  
  133. REFERENCE LINE
  134.     The Reference Line tool is a "ruler" for measuring distance in
  135.     3D space. Both ends can be dragged around, or "attached" to points
  136.     by double-clicking near the intended point.  The distance (length
  137.     of the reference line) appears in the upper right corner.
  138.  
  139. PICK COLOR
  140.     Not implemented yet.  Will set the current color.
  141.  
  142. UNDO / REDO
  143.     You should be able to Undo and Redo ANY operation.  If you find a
  144.     bug in Undo/Redo, let me know.  It's a fairly tricky feature.
  145.     It's also fairly uncommon in 3d editors.  Heck, 3D Studio for $3500
  146.     doesn't even have SINGLE-LEVEL UNDO.
  147.  
  148. GRID
  149.     Toggle the visible grid.
  150.  
  151. SNAP
  152.     Toggle snapping to the snap grid.
  153.  
  154.  
  155. *****************************************************************************
  156.  
  157.     M E N U S
  158.  
  159.  
  160. PROJECT
  161. -------
  162. Load and Save
  163.     These are self-descriptive.
  164.  
  165. Clear
  166.     Deletes all geometry from the current object.
  167.  
  168. Save Defaults
  169.     Saves the settings of the "Options" menu to a file called wog.opt,
  170.     which is automatically loaded the next time you start.
  171.  
  172.  
  173. EDIT
  174. ----
  175.     Note: there is no "real" clipboard support yet.  Cut, Copy and Paste
  176.     work by using a temporary Polywog object called "Clipboard".
  177.  
  178. Duplicate
  179.     Makes an exact in-place copy of all selected vertices,
  180.     polygons, and lines.  You should probably move the duplicated
  181.     geometry right after, so that you don't forget where there is
  182.     duplicate geometry.
  183.  
  184. Erase
  185.     Kills the selected vertices, polygons, and lines.
  186.  
  187. Detach Selection
  188.     Will "detach" the selected geometry from the unselected.  Extras
  189.     vertices are created as necessary, so that no vertices are shared
  190.     between the selected and unselected geometry.
  191.  
  192. Select All
  193.     Selects all vertices.
  194.  
  195. Select Connected
  196.     Selects all verts which share polygons/lines with selected verts.
  197.  
  198. Deselect All
  199.     Deselects all vertices.
  200.  
  201. Cut as a new object
  202.     The selected vertices, polygons and lines will be removed from the
  203.     current object and used to create a new object.
  204.  
  205. Copy as a new object
  206.     Same as Cut as a new object, except that the geometry isn't deleted.
  207.  
  208. Affect Verts Only
  209.     If set, Duplicate and Delete will only duplicate/delete vertices,
  210.     not polys or lines.
  211.  
  212. Affect Polys Only
  213.     If set, Duplicate and Delete will only duplicate/delete polys and
  214.     lines.
  215.  
  216. Require All Verts
  217.     If set, poolygons and lines will be considered selected only if all
  218.     their vertices are selected.  Otherwise, they are considered selected
  219.     if any of their vertices are selected.
  220.  
  221.  
  222. VIEW
  223. ----
  224. Zoom All
  225.     Adjusts the Zoom factor so that all visible geometry fits in the
  226.     view.
  227.  
  228. Zoom In / Zoom Out
  229.     Zooms in/out by 20%.  The shortcuts 'z' and 'Z' may be more useful
  230.     because they zoom in/out around the point under the pointer.
  231.  
  232. Zoom to Selection
  233.     Adjusts the Zoom factor so that all selected geometry fits in the
  234.     view.
  235.  
  236. Zoom Reset
  237.     Restores the Zoom to 1 unit = 1 pixel.
  238.  
  239. There is no standard on which way the X, Y, and Z axes point.  Polywog
  240. lets you choose between several popular schemes:
  241.  
  242. VR386/Vscape Axes
  243. WorldToolKit Axes
  244. AutoCAD Axes     
  245.  
  246. Show Only Selection
  247.     Hides any unselected geometry.
  248.  
  249. Hide Selection
  250.     Hides any selected geometry.
  251.  
  252. Show Everything
  253.     Un-hides all geometry.
  254.  
  255. Hide Backfaces
  256.     doesn't currently work very well
  257.  
  258. Set View Colors...
  259.     Lets you set which colors are used for polygons, vertices, lines, the
  260.     window background, etc.
  261.  
  262.  
  263. POLYHEDRA
  264. ---------
  265. Tetrahedron
  266. Octahedron
  267. Cube
  268. Icosahedron
  269. Dodecahedron
  270.  (rhombic Dodecahedron)
  271. Cuboctahedron
  272. Globe
  273. Torus
  274. Cylinder
  275. Box (xyz)
  276.     These are some basic polyhedra.  You can use them as starting points
  277.     for constructing really wild, complex polyhedra using Polywog's
  278.     special features.  All polyhedra are created initially centered
  279.     around the origin.
  280.     
  281.  
  282. OPERATIONS
  283. ----------
  284. Vertex at Center
  285.     Creates a new vertex in the center of the object or selection.  Very
  286.     useful for finding midpoints of faces or solids, bisecting lines and
  287.     angles,    etc.
  288.  
  289. Stellate...
  290.     This will take every face and make a pyramid out of it, giving a "3D
  291.     star" based on whatever shape you are using.  Combining this feature
  292.     with "Find Dual" can be used to form truncated forms of polyhedra.
  293.     Try it.
  294.  
  295. Extrude...
  296.     Extrude the selected polygons in the indicated direction.
  297.  
  298. Frequency Tesselation...
  299.     This is one of the two Really Neat features of Polywog.
  300.     This will divide each triangular (or quadrilateral) face into a set
  301. of smaller triangles, where the number of resultant triangles is frequency
  302. squared.  Try this on your favorite polyhedra, then Normalize to get
  303. pseudo-geodesic structures.  The reason why I say psuedo is because if you
  304. use this method with any ODD frequency, the resulting location of vertices
  305. does not truly correlate to subdiving the geodesicic arcs described by the
  306. polyhefron edges.  It is, however, very close.  You could theoretically
  307. raise a form to any large frequency, although you are, naturally, limited
  308. by your memory size.
  309.  
  310. Flip/Swap XYZ...
  311.     Invert or exchange the X, Y, Z values of the selection (or object, if
  312.     nothing is selected).  Useful for creating the "mirror" of some
  313.     geomtry or converting from one axis convention to another.
  314.  
  315. Spin (Surface of Revolution)...
  316.     The selected lines are spun around the vertical axis to create a
  317.     polygonal surface.
  318.  
  319. Normalize
  320.     This finds the center of all points and adjusts all points to lie the
  321.     average distance from that center.  Simply stated, it makes all
  322.     points Spherical.  One use is to project flat tesselated faces onto
  323.     their geodesic arcs.
  324.  
  325. Object Center->Origin
  326.     Moves all points so that their vector sum is centered on the origin.
  327.  
  328. Set Clockwisdom of Polys
  329.     Most rendering systems determine the front and back faces of a
  330.     polygon by considering whether the vertices are clockwise or
  331.     counterclockwise.  In case an object has inconsistent ordering, you
  332.     can use this operation to set the clockwisdom of all polygons to be
  333.     the same.  Note that this assumes the object is convex and centered
  334.     at the origin.
  335.  
  336. Subdivide Quads
  337.     Splits all 4-sided polygons into triangles.
  338.  
  339. Subdivide Nonplanar Polys
  340.     Splits all non-planar polygons into triangles.
  341.  
  342. Merge Redundant Vertices
  343.     Finds all redundant vertices (two vertices at the exact same point in
  344.     space) and joins them.
  345.  
  346. Remove Redundant Polys
  347.     Finds all redundant polys (two polys connecting the exact same
  348.     vertices) and removes the extra poly in each case.
  349.  
  350. Unfold
  351. Generate Convex Hull
  352.     These are future Really Neat Features.
  353.  
  354. Create Dual as new object
  355.     This is the second Really Neat feature.
  356.     Every fully-connected polyhedron has a dual, which is formed by
  357. exchanging the configuration of faces with vertices.  For example, the
  358. cube's dual is the octahedron, and the icosahedron's dual is the pentagon
  359. dodecahedon.  Complex geodesic structures also have their duals, which are
  360. typically complex "fly's eye" structures involving many hexagons.
  361. Naturally, a dual of a dual is the original shape.
  362.  
  363.  
  364. OPTIONS
  365. -------
  366. Display Coordinates
  367.     Toggle display of the current X,Y,Z location.
  368.  
  369. Display Crosshair
  370.     Gives you a "+" crosshair, useful for lining up parts of an object.
  371.     You can set the color of the crosshair with "Set View Colors" under
  372.     the VIEW menu.
  373.  
  374. Display Axes
  375.     Toggle display of  the X, Y, and Z axes.
  376.  
  377. Display Object List
  378.     Toggle display of a list of all objects in a seperate window.
  379.  
  380. Reference Line
  381.     Toggle display of the reference line.
  382.  
  383. Undo Buffer Active
  384.     Toggle whether Undo is turned on for the current object.
  385.  
  386. Grid On
  387.     Toggle display of the visible grid.
  388.  
  389. Snap cursor to Grid
  390.     Toggle snapping of the cursor to the snap grid (which can be
  391.     different from the visible grid).
  392.  
  393. Poly Normals / Vertex Normals
  394.     Ignore these menu items.
  395.  
  396. Display options...
  397.     Sets options having to do with the display:
  398.         Visible grid size
  399.         Snap grid size
  400.         Display grid as dots or lines
  401.         How to display geometry when you'rre dragging it
  402.  
  403. More options...
  404.     Sets other options:
  405.         Rotation constraint
  406.         Scale/Stretch contraint
  407.         Definition of object "center"
  408.         "Undo buffer size" affects the undo buffer only at the next time you
  409.             start Polywog - it doesn't change or damage your current undo
  410.             buffer.
  411.         "Assume a polyhedron" tell the features on the Special menu (notably
  412.             Find Dual and Normalize) to assume that the shape you're working
  413.             with is a polyhedron.  Set this option whenever you DO have a
  414.             polyhedron.
  415.  
  416.  
  417. *****************************************************************************
  418.  
  419.     K E Y B O A R D   S H O R T C U T S
  420.  
  421.  a - Area:             space bar - full refresh
  422.      s - Select                c - Vertex at center
  423.      d - Deselect              d - toggle Ref line
  424.      z - Zoom into             f - Front view
  425.                                F - Fake 3D view
  426.  3 - 3-sided poly:             4 - 4-sided poly:
  427.      a - Add                       a - Add
  428.      d - Delete                    d - Delete
  429.  g - toggle Grid               i - Info
  430.  G - toggle Grid-snap          j - Zoom to selection
  431.  l - Line:                     p - Poly:
  432.      a - Add                       a - Add
  433.      d - Delete                    d - Delete
  434.  m - Move mode                 n - Next object
  435.  o - toggle Objectlist         q - Quit
  436.  r - Rotate                    s - Side view
  437.  v - Vertex:                   t - Top view
  438.      a - Add                   u - Undo
  439.      d - Delete                U - Redo
  440.      s - Select        backspace - kill selected
  441.      m - Move                  z - zoom in
  442.  x - toggle Crosshair          Z - zoom out
  443. Esc - deselect/select All      ~ - cycle palette
  444.  
  445. SHIFT can be used to extend selection in area-select mode.
  446.  
  447. *****************************************************************************
  448.  
  449. About the Author
  450. ----------------
  451.  
  452.   I originally wrote this program while dropping out of Caltech, due to
  453. spending too much time with my hobby, 3D geometry, which no one was
  454. interested in teaching me about.  Much of the original coding was done
  455. during a few months of unemployment in Berkeley in early summer 1990.
  456. Since then I've been doing small amounts of additional work on weekends,
  457. and ported it to the Macintosh and MS Windows.
  458.  
  459.   I am currently (1/13/95) reachable at iguana@crl.com.
  460.  
  461. ******************
  462.  
  463. Amiga version notes
  464.  
  465. Before running:  make sure you have the reqtools.library in your LIBS:
  466. directory.  It may be included in this archive case you don't have it
  467. already.
  468.  
  469. There are some command line options from a CLI:
  470.   -c to run on a custom screen (default)
  471.   -m to run on the default display (workbench screen)
  472.   -sm to make the custom screen medium-res
  473.   -sp to use the workbench palette
  474.  
  475. Sorry, Workbench fans, no ToolTypes stuff.
  476. Polywog also doesn't run under AmigaOS V1.3.
  477.  
  478.  
  479. ******************
  480.  
  481. H I S T O R Y
  482.  
  483. Version 1.88
  484. ------------
  485.     Added POV triangle output
  486.  
  487.     Fixed "Subdivide quads" to preserve colors.
  488.  
  489.     Mlib now converts "*" to "#?" for show-pattern, for Amiga users who
  490.     aren't using "*" as their wildcard.
  491.  
  492.     The Remove Redundant Polys function now shows the percent done.
  493.  
  494.     Rotate now shows the actual rotation on-sceen (rubber-bands just like
  495.     movement).
  496.  
  497.     Duplicate Selection now states the # of verts copied.
  498.  
  499.     Cylinder constructor now uses radio buttons.
  500.  
  501.     Added key to toggle fake3D.
  502.  
  503.     Zoom in/out menus (used to be key shortcut only)
  504.  
  505.     Undo buffer now stays on by default
  506.  
  507.     Mlib was changed so that custom screens open to default "Text
  508.     Overscan" size, not the size of the Workbench screen.
  509.  
  510.     Wrote documentation.
  511.  
  512. Version 1.87
  513. ------------
  514.     Sent for beta-testing to 18 people.  People wanted more file formats
  515.     and closer adherence to the Amiga Style Guide.  Nobody reported bugs!
  516.  
  517.  
  518. *************
  519. Legal Baloney
  520.  
  521. See the file "license.wog" for the legal status of Polywog and terms
  522. under which you can use it.  To summarize here, you can copy and use it
  523. freely, but all liability is disclaimed blah blah blah.
  524.  
  525.